package es.maria;

import java.io.*;
import java.sql.*;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.DataSource;

public class ConsultaServlet extends HttpServlet {
	// El metodo doGet() se ejecuta una vez por cada peticion HTTP GET.

	private DataSource fuenteDatos = null;

	public void init(ServletConfig conf) throws ServletException {
		super.init(conf);
		Context ctx;
		try {
			ctx = new InitialContext();
			fuenteDatos = (DataSource) ctx.lookup("java:comp/env/jdbc/Meteorologia");
		} catch (NamingException e) {
			e.printStackTrace();
		}
	}

	@Override
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		/*
		// Establecemos el tipo MIME del mensaje de respuesta
		response.setContentType("text/html");
		// Creamos un objeto para poder escribir la respuesta
		PrintWriter out = response.getWriter();
		Connection conn = null;

		synchronized (fuenteDatos) {
			try {
				conn = fuenteDatos.getConnection();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		// PreparedStatement stmt = null;
		Statement stmt = null;
		try {
			// Paso 1: Cargar el driver JDBC.
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			// Paso 2: Conectarse a la Base de Datos utilizando la clase
			// Connection
			String userName = "root";
			String password = "root";
			// URL de la base de datos(equipo, puerto, base de datos)
			String url = "jdbc:mysql://localhost/Meteorologia";
			conn = DriverManager.getConnection(url, userName, password);
			// Paso 3: Crear sentencias SQL, utilizando objetos de tipo
			// Statement

			// stmt =
			// conn.prepareStatement("select * from libros where titulo like '% ? %'");
			stmt = conn.createStatement();
			// Paso 4: Ejecutar las sentencias SQL a traves de los objetos
			// Statement

			String fecha = request.getParameter("Fecha");
			String comunidad = request.getParameter("Comunidad");
			String prediccion = request.getParameter("Prediccion");
			Float minimo = request.getParameter("Minimo");
			Float maximo = request.getParameter("Maximo");
			Float viento = request.getparameter("Viento");

			// stmt.setString(1, titulo);

			// Generar una pagina HTML como resultado de la consulta
			out.println("<html><head><title>Resultado de la consulta</title></head><body>");
			out.println("<h3>Gracias por tu consulta.</h3>");
			out.println("<p>Fecha: " + fecha + "</p>");
			// ResultSet rset = stmt.executeQuery();
			!!!!!!! String consulta = "select * from Fecha where Fecha '%"
					+ fecha + "%' AND comunidad like '%" + comunidad + "%'";
			System.out.println(consulta);
			ResultSet rset = stmt.executeQuery(consulta);
			// Paso 5: Procesar el conjunto de registros resultante utilizando
			// ResultSet
			int count = 0;
			while (rset.next()) {
				out.println("<p>" + rset.getString("Fecha") + ", "
						+ rset.getString("Comunidad") + ", "
						+ rset.getString("Prediccion") + ", "
						+ rset.getFloat ("Minimo") + ", "
						+ rset.getFloat ("Maximo") + ", "
						+ rset.getInt("Viento") + "</p>");
				count++;
			}
			out.println("<p>==== " + count + " registros encontrados =====</p>");
			out.println("</body></html>");
		} catch (Exception ex) {
			ex.printStackTrace();
		} finally {
			out.close(); // Cerramos el flujo de escritura
			try {
				// Cerramos el resto de recursos
				if (stmt != null)
					stmt.close();
				if (conn != null)
					conn.close();
			} catch (SQLException ex) {
				ex.printStackTrace();
			}
		}
		*/
	}
}